#include <iostream>
using namespace std;

class Object {
 public:
  Object() { cout << "default ctor" << endl; };
  Object(const Object&) { cout << "copy ctor" << endl; }
  Object(Object&&) { cout << "move ctor" << endl; }
  void print() const { cout << "Object@" << this << endl; }
};

Object foo() {
  Object o;
  o.print();
  return o;
}

int main(int argc, char* argv[]) {
  const Object o = foo();
  if(argc < 2 || argv[1][0] == 'p') {
    o.print();
  }
}